<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <h1 data-lake-id="jysfT" id="jysfT"><span data-lake-id="u5c6afc75" id="u5c6afc75">典型回答</span></h1>
  <p data-lake-id="u5952a657" id="u5952a657"><strong><span data-lake-id="ube442de2" id="ube442de2">同步与异步描述的是被调用者的。</span></strong></p>
  <p data-lake-id="u16a86e5c" id="u16a86e5c"><span data-lake-id="uda571e06" id="uda571e06">譬如A调用B。</span></p>
  <p data-lake-id="u6ef27d1a" id="u6ef27d1a"><span data-lake-id="u3619504c" id="u3619504c">如果是同步，B在接到A的调用后，会立即执行要做的事。A的本次调用可以得到结果。</span></p>
  <p data-lake-id="ueffd1a6f" id="ueffd1a6f"><span data-lake-id="uab09a719" id="uab09a719">如果是异步，B在接到A的调用后，不保证会立即执行要做的事，但是保证会去做，B在做好了之后会通知A。A的本次调用得不到结果，但是B执行完之后会通知A。</span></p>
  <p data-lake-id="ufc689594" id="ufc689594"><span data-lake-id="u5654ed8a" id="u5654ed8a">​</span><br></p>
  <p data-lake-id="u5fa6830f" id="u5fa6830f"><strong><span data-lake-id="u2dcd11b9" id="u2dcd11b9">阻塞与非阻塞描述的是调用者的。</span></strong></p>
  <p data-lake-id="u29db05eb" id="u29db05eb"><span data-lake-id="ubd9cfd07" id="ubd9cfd07">A调用B。</span></p>
  <p data-lake-id="ue4eb1d2a" id="ue4eb1d2a"><span data-lake-id="u6cb73867" id="u6cb73867">如果是阻塞，A在发出调用后，要一直等待，等着B返回结果。</span></p>
  <p data-lake-id="u3478da88" id="u3478da88"><span data-lake-id="ue8e4eacd" id="ue8e4eacd">如果是非阻塞，A在发出调用后，不需要等待，可以去做自己的事情。</span></p>
  <p data-lake-id="uacb6a8ca" id="uacb6a8ca"><span data-lake-id="u7dbce933" id="u7dbce933">同步不一定阻塞，异步也不一定非阻塞。没有必然关系。</span></p>
  <p data-lake-id="u60f075e9" id="u60f075e9"><span data-lake-id="u5e0b7237" id="u5e0b7237">​</span><br></p>
  <p data-lake-id="u0d0bc8fa" id="u0d0bc8fa"><span data-lake-id="u28c0ddc6" id="u28c0ddc6">举个简单的例子，老张烧水：</span></p>
  <ol list="u7ae75eeb">
   <li fid="u582d42ee" data-lake-id="u79a7106e" id="u79a7106e"><span data-lake-id="u848620c7" id="u848620c7">老张把水壶放到火上，一直在水壶旁等着水开。（同步阻塞）</span></li>
   <li fid="u582d42ee" data-lake-id="uf357cef1" id="uf357cef1"><span data-lake-id="uf3d3218b" id="uf3d3218b">老张把水壶放到火上，去客厅看电视，时不时去厨房看看水开没有。（同步非阻塞）</span></li>
   <li fid="u582d42ee" data-lake-id="uf2dc3ca6" id="uf2dc3ca6"><span data-lake-id="u41dfd640" id="u41dfd640">老张把响水壶放到火上，一直在水壶旁等着水开。（异步阻塞）</span></li>
   <li fid="u582d42ee" data-lake-id="ub0f1ab48" id="ub0f1ab48"><span data-lake-id="ud684c977" id="ud684c977">老张把响水壶放到火上，去客厅看电视，水壶响之前不再去看它了，响了再去拿壶。（异步非阻塞）</span></li>
  </ol>
  <p data-lake-id="u3f77c8da" id="u3f77c8da"><br></p>
  <p data-lake-id="u37db256c" id="u37db256c"><span data-lake-id="u8dee482a" id="u8dee482a">1和2的区别是，调用方在得到返回之前所做的事情不一样。</span></p>
  <p data-lake-id="u3ce3cfd4" id="u3ce3cfd4"><span data-lake-id="u9c5bb3be" id="u9c5bb3be">1和3的区别是，被调用方对于烧水的处理不一样。</span></p>
 </body>
</html>